from django.core.files.storage import Storage
from django.conf import settings
import os

class LocalImageStorage(Storage):
    """本地图片存储系统"""
    
    def __init__(self, base_url=None):
        """
        构造方法
        :param base_url: Storage的URL基地址
        """
        self.base_url = base_url or settings.LOCAL_IMAGE_BASE_URL
    
    def open(self, name, mode='rb'):
        """
        用于打开文件
        :param name: 要打开的文件的名字
        :param mode: 打开文件方式
        :return: None
        """
        # 打开文件时使用的，此时不需要，而文档告诉说明必须实现，所以pass
        pass
    
    def _save(self, name, content):
        """
        用于保存文件
        :param name: 要保存的文件名字
        :param content: 要保存的文件的内容
        :return: None
        """
        # 保存文件时使用的，此时不需要，而文档告诉说明必须实现，所以pass
        pass
    
    def url(self, name):
        """
        返回name所指文件的绝对URL
        :param name: 要读取文件的引用
        :return: http://www.meiduo.site:8080/images/goods/goods001.jpg
        """
        # 如果name是完整的FastDFS路径，提取文件名
        if 'group' in name:
            # 从类似"group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg"的路径中提取文件名
            filename = name.split('/')[-1]
            return self.base_url + filename
        return self.base_url + name